#ifndef _TEXGEN_PRIMITIVES
#define _TEXGEN_PRIMITIVES

#include "common.h"

namespace Texgen {
	void Texgen_Init();
	extern int32 mask;
	extern char8 op; 

	void copytemp(int32 *dst);

	void hsv_to_rgb(float h, float s, float v, int *r, int *g, int *b);
	void mononoise(int blocksizex, int blocksizey);
	void subplasma(int xsize, int ysize);
	void sines(int xsines, int ysines);
	void blur(int32 *data, int times);
	void emboss(int32 *data, int strength);
	void emboss2(int32 *data, int strength);
	void fractalplasma(int turbulence, int falloff);
	void shade(int32 *data, int32 *source);
	void tilepic(int32 *data, int32 picture, int magnifyx, int magnifyy);
	void drawpic(int32 *data, int32 picture, int magnifyx, int magnifyy, int x, int y);
	void clear(int32 color);
	void offset(int32 *data, int xoff, int yoff);
	void sinecolor(int32 *data, int sines);
	void sinedist(int32 *data, int xsines, int xamount, int ysines, int yamount);
	void chess(int shiftx, int shifty);
	void cells(int num, int strength, int type);
	void circular(int subtract, int multiply, int type);
	void copyimage(int32 *source);
	void alphablend(int32 *data, int32 *other, int alpha);
	void invert(int32 *data);
	void alphablenddatalayer(int32 *data, int32 *other, int32 *alpha);
	void hsv_adjust(int32 *data, int hueadd, int saturationscale);
	void rotate90(int32 *data);
	void rgb2hsv(int32 *data, int hueadd, int satscale);
	void contrast(int32 *data, int antigrey);
	void tex_max(int32 *data, int32 *source);
	//void radialsines(int32 *data, int numsines, int offset);
	void polar(int32 *data, int magnify, int revolutions);
	void mapdistort(int32 *data, int32 *xsource, int32 *ysource, int xamplitude, int yamplitude, int comp);
	void lightrays(int amount);
	void blue2all(int32 *data);
	void tonormalmap(int32 *data, int heightmul);
}  // namespace

#endif
